Změna kurzoru

V projektech se leckdy hodí změna tvaru kurzoru myši, jde o zajímavý efekt (a také dokumentuje znalosti programátora :-) ), ale jako obvykle všeho moc škodí - nemusíte to s kurzory přehánět -:) .

Pro změnu tvaru kurzoru myši využívá Imagine příkaz
setMouseCursor.
Příkaz je možné využít s těmito parametry:


Zastavení jednotlivých procesů

V minulých lekcích jsme pro spuštění trvalých procesů (stále běžících) použili příkaz every , například:
t1'every 10 [fd 3] - želvička t1 každých 10 milisekund popojde o 3 kroky nezávisle na tom, co se kde jinde děje.
Pro zastavení procesů jsme zatím použili příkaz stopall, který zastaví všechny spuštěné procesy najednou. Je ale také možné zastavit jen některý ze spuštěných procesů, a to příkazem cancel. Například proces uvedený výše v příkladě bychom zastavili příkazem:
cancel [fd 3] .
Pokud by ale některá jiná želvička také dělala neustále fd 3, zastavila by se také. Proto je ještě další možnost - jednotlivé procesy se dají také pojmenovat, například:
(t1'every 60 [fd 3] "t1d) - tento proces je pojmenovaný t1d a tento název můžeme využít k jeho zastavení:
cancel "t1d

Projekt mouchy

V této jednoduché hříčce budeme plácačkou na mouchy hubit obtížný hmyz. V ukázce je použita procedura start startovacího tlačítka (hledejte ji v tlačítku):
to start
make"mucholapka loadImage "mucholapka.lgf
setMouseCursor :mucholapka
make"moucha loadimage "mucha1.lgf
tell allturtles
setshape :moucha
(t1'every 60 [fd 2] "t1d)
(t1'every 800 [rt any] "t1o)
end

Před nastavením tvaru kurzoru je tvar "plácačky" (mucholapka.lgf) načtený do proměnné mucholapka, bylo možné rovnou načíst tvar kurzoru do příkazu setmousecursor, ale v manuálech se uvádí, že by potom mohlo dojít k potížím při ukládání jako www (ale zatím jsem na žádný nenarazil).
Podobně se ve třetím řádku tvar mouchy nejprve uloží do proměnné. Protože počítáme s tím, že much bude více (však už se oteplilo :-) ), jsou v dalším řádku "zaktivněny" všechny želvy (i když v ukázce je jen jedna), potom lze jediným příkazem setshape nastavit tvar všech (stejný).
Kromě uvedených obrázků mucholapka.lgf a mucha1.lgf nám autorka jednoho z tutoriálů (viz odkazy) připravila ještě obrázek chycena.lgf. Ten budeme potřebovat do události želvičky t1 onLeftDown - při stisknutí levého tlačítka, čili když jsme klikli myší (tedy plácačkou) na mouchu:
setshape :chycena cancel "t1o cancel "t1d
Předtím ale někde v proceduře nebo v příkazovém řádku musíme proměnné chycena načíst správný tvar.

Projekt ulož pod názvem mouchy.imp !

Úkol:

Základní úloha:

Ze složky s lekcemi si zkopíruj do své složky projekt moucha1.imp (odsud pravým tlačítkem a Uložit cíl jako). Doplň do něj:
- do proměnné chycena načti tvar chycené mouchy (obrázek chytena.lgf v této složce)
- přidej ještě další dvě mouchy stejných vlastností jako první


Úloha na plus:

Rozšiř hru na pět much, doplň úvodní stránku s pravidly, pole do kterého se bude vypisovat počet chycených much. Změň tvar, nebo alespoň barvy much.


Úloha na jedničku:

K úloze na plus doplň zvolení náhodných souřadnic želviček po startu a časový limit pro jejich pochytání (například ubývající nebo přibávající barva v obdélníčku).